package cn.com.css.taxInspection.gt3.service.impl;

import cn.com.css.taxInspection.gt3.entity.ZxhjQsdhEntity;
import cn.com.css.taxInspection.gt3.entity.ZxhjQsdhRglrEntity;
import cn.com.css.taxInspection.gt3.entity.ZxhjQsdhEntity;
import cn.com.css.taxInspection.gt3.entity.ZxhjQsdhRglrEntity;
import cn.com.css.taxInspection.gt3.mapper.ZxhjQsdhMapper;
import cn.com.css.taxInspection.gt3.mapper.ZxhjQsdhRglrMapper;
import cn.com.css.taxInspection.gt3.mapper.ZxhjQstjRglrMapper;
import cn.com.css.taxInspection.gt3.service.ZxhjQsdhService;
import cn.com.css.taxInspection.system.service.impl.HttpSessionService;
import cn.com.css.taxInspection.util.TsBqUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;

@Service("ZxhjQsdhService")
public class ZxhjQsdhServiceImpl extends ServiceImpl<ZxhjQsdhMapper, ZxhjQsdhEntity> implements ZxhjQsdhService {

    @Resource
    private ZxhjQsdhRglrMapper zxhjQsdhRglrMapper;

    @Override
    public IPage<ZxhjQsdhEntity> queryZxtzQsdhTable(ZxhjQsdhEntity zxhjQsdhEntity) throws ParseException {
        Page<ZxhjQsdhEntity> page = new Page<>(zxhjQsdhEntity.getPage(), zxhjQsdhEntity.getLimit());
        LambdaQueryWrapper<ZxhjQsdhEntity> queryWrapper = Wrappers.lambdaQuery();
        //纳税人识别号
        if (TsBqUtils.isNotNull(zxhjQsdhEntity.getNsrsbh())) {
            queryWrapper.like(ZxhjQsdhEntity::getNsrsbh, zxhjQsdhEntity.getNsrsbh());
        }
        //纳税人名称
        if (TsBqUtils.isNotNull(zxhjQsdhEntity.getNsrmc())) {
            queryWrapper.like(ZxhjQsdhEntity::getNsrmc, zxhjQsdhEntity.getNsrmc());
        }
        //案件所在税务机关
        if (TsBqUtils.isNotNull(zxhjQsdhEntity.getAjszjgDm())) {
            queryWrapper.eq(ZxhjQsdhEntity::getAjszjgDm, zxhjQsdhEntity.getAjszjgDm());
        }
        queryWrapper.and(wp->wp.ne(ZxhjQsdhEntity::getQsye,0)
                .or().ne(ZxhjQsdhEntity::getBnqqje,0)
        );
        queryWrapper.orderByDesc(ZxhjQsdhEntity::getLarq);
        Page<ZxhjQsdhEntity> page1 = this.page(page, queryWrapper);
        List<ZxhjQsdhEntity> records = page1.getRecords();
        records.forEach(i->{
            LambdaQueryWrapper<ZxhjQsdhRglrEntity> queryWrapper1 = Wrappers.lambdaQuery();
            if (i.getJcajxxuuid() == null) {
                queryWrapper1.isNull(ZxhjQsdhRglrEntity::getJcajxxuuid);
            }else {
                queryWrapper1.eq(ZxhjQsdhRglrEntity::getJcajxxuuid, i.getJcajxxuuid());
            }
            if (i.getNsrsbh() == null) {
                queryWrapper1.isNull(ZxhjQsdhRglrEntity::getNsrsbh);
            }else {
                queryWrapper1.eq(ZxhjQsdhRglrEntity::getNsrsbh, i.getNsrsbh());
            }
            if (i.getNsrmc() == null) {
                queryWrapper1.isNull(ZxhjQsdhRglrEntity::getNsrmc);
            }else {
                queryWrapper1.eq(ZxhjQsdhRglrEntity::getNsrmc, i.getNsrmc());
            }
            if (i.getJcajbh() == null) {
                queryWrapper1.isNull(ZxhjQsdhRglrEntity::getJcajbh);
            }else {
                queryWrapper1.eq(ZxhjQsdhRglrEntity::getJcajbh, i.getJcajbh());
            }
            if (i.getNsrzt() == null) {
                queryWrapper1.isNull(ZxhjQsdhRglrEntity::getNsrzt);
            }else {
                queryWrapper1.eq(ZxhjQsdhRglrEntity::getNsrzt, i.getNsrzt());
            }
            if (i.getJcajzt() == null) {
                queryWrapper1.isNull(ZxhjQsdhRglrEntity::getJcajzt);
            }else {
                queryWrapper1.eq(ZxhjQsdhRglrEntity::getJcajzt, i.getJcajzt());
            }
            if (i.getZxry() == null) {
                queryWrapper1.isNull(ZxhjQsdhRglrEntity::getZxry);
            }else {
                queryWrapper1.eq(ZxhjQsdhRglrEntity::getZxry, i.getZxry());
            }
            if (i.getZxdjrq() == null) {
                queryWrapper1.isNull(ZxhjQsdhRglrEntity::getZxdjrq);
            }else {
                queryWrapper1.eq(ZxhjQsdhRglrEntity::getZxdjrq, i.getZxdjrq());
            }
            if (i.getLarq() == null) {
                queryWrapper1.isNull(ZxhjQsdhRglrEntity::getLarq);
            }else {
                queryWrapper1.eq(ZxhjQsdhRglrEntity::getLarq, i.getLarq());
            }
            if (i.getYzfsrq() == null) {
                queryWrapper1.isNull(ZxhjQsdhRglrEntity::getYzfsrq);
            }else {
                queryWrapper1.eq(ZxhjQsdhRglrEntity::getYzfsrq, i.getYzfsrq());
            }
            if (i.getAjszjgDm() == null) {
                queryWrapper1.isNull(ZxhjQsdhRglrEntity::getAjszjgDm);
            }else {
                queryWrapper1.eq(ZxhjQsdhRglrEntity::getAjszjgDm, i.getAjszjgDm());
            }
            ZxhjQsdhRglrEntity ZxhjQsdhRglrEntity1 = zxhjQsdhRglrMapper.selectOne(queryWrapper1);
            if (ZxhjQsdhRglrEntity1 != null) {
                i.setQscsyy(ZxhjQsdhRglrEntity1.getQscsyy());
                i.setQyxz(ZxhjQsdhRglrEntity1.getQyxz());
                i.setCqdqycs(ZxhjQsdhRglrEntity1.getCqdqycs());
            }
        });
        page1.setRecords(records);
        return page1;
    }

    @Override
    public Boolean updateZxtzQstjyy(ZxhjQsdhEntity zxhjQsdhEntity) {
        return this.updateById(zxhjQsdhEntity);
    }

    @Override
    public Boolean insertZxtzQsdhRglr(ZxhjQsdhEntity zxhjQsdhEntity) {
        if ( zxhjQsdhEntity.getJcajxxuuid().equals("")){
            zxhjQsdhEntity.setJcajxxuuid(null);
        }
        if ( zxhjQsdhEntity.getNsrsbh().equals("")){
            zxhjQsdhEntity.setNsrsbh(null);
        }        if ( zxhjQsdhEntity.getNsrmc().equals("")){
            zxhjQsdhEntity.setNsrmc(null);
        }        if ( zxhjQsdhEntity.getJcajbh().equals("")){
            zxhjQsdhEntity.setJcajbh(null);
        }        if ( zxhjQsdhEntity.getNsrzt().equals("")){
            zxhjQsdhEntity.setNsrzt(null);
        }        if ( zxhjQsdhEntity.getJcajzt().equals("")){
            zxhjQsdhEntity.setJcajzt(null);
        }       if ( zxhjQsdhEntity.getZxry().equals("")){
            zxhjQsdhEntity.setZxry(null);
        }        if ( zxhjQsdhEntity.getZxdjrq().equals("")){
            zxhjQsdhEntity.setZxdjrq(null);
        }        if ( zxhjQsdhEntity.getLarq().equals("")){
            zxhjQsdhEntity.setLarq(null);
        }        if ( zxhjQsdhEntity.getYzfsrq().equals("")){
            zxhjQsdhEntity.setYzfsrq(null);
        } 
        if ( zxhjQsdhEntity.getAjszjgDm().equals("")){
            zxhjQsdhEntity.setAjszjgDm(null);
        }
        LambdaQueryWrapper<ZxhjQsdhRglrEntity> queryWrapper = Wrappers.lambdaQuery();
        if (zxhjQsdhEntity.getJcajxxuuid() == null) {
            queryWrapper.isNull(ZxhjQsdhRglrEntity::getJcajxxuuid);
        }else {
            queryWrapper.eq(ZxhjQsdhRglrEntity::getJcajxxuuid, zxhjQsdhEntity.getJcajxxuuid());
        }
        if (zxhjQsdhEntity.getNsrsbh() == null) {
            queryWrapper.isNull(ZxhjQsdhRglrEntity::getNsrsbh);
        }else {
            queryWrapper.eq(ZxhjQsdhRglrEntity::getNsrsbh, zxhjQsdhEntity.getNsrsbh());
        }
        if (zxhjQsdhEntity.getNsrmc() == null) {
            queryWrapper.isNull(ZxhjQsdhRglrEntity::getNsrmc);
        }else {
            queryWrapper.eq(ZxhjQsdhRglrEntity::getNsrmc, zxhjQsdhEntity.getNsrmc());
        }
        if (zxhjQsdhEntity.getJcajbh() == null) {
            queryWrapper.isNull(ZxhjQsdhRglrEntity::getJcajbh);
        }else {
            queryWrapper.eq(ZxhjQsdhRglrEntity::getJcajbh, zxhjQsdhEntity.getJcajbh());
        }
        if (zxhjQsdhEntity.getNsrzt() == null) {
            queryWrapper.isNull(ZxhjQsdhRglrEntity::getNsrzt);
        }else {
            queryWrapper.eq(ZxhjQsdhRglrEntity::getNsrzt, zxhjQsdhEntity.getNsrzt());
        }
        if (zxhjQsdhEntity.getJcajzt() == null) {
            queryWrapper.isNull(ZxhjQsdhRglrEntity::getJcajzt);
        }else {
            queryWrapper.eq(ZxhjQsdhRglrEntity::getJcajzt, zxhjQsdhEntity.getJcajzt());
        }
        if (zxhjQsdhEntity.getZxry() == null) {
            queryWrapper.isNull(ZxhjQsdhRglrEntity::getZxry);
        }else {
            queryWrapper.eq(ZxhjQsdhRglrEntity::getZxry, zxhjQsdhEntity.getZxry());
        }
        if (zxhjQsdhEntity.getZxdjrq() == null) {
            queryWrapper.isNull(ZxhjQsdhRglrEntity::getZxdjrq);
        }else {
            queryWrapper.eq(ZxhjQsdhRglrEntity::getZxdjrq, zxhjQsdhEntity.getZxdjrq());
        }
        if (zxhjQsdhEntity.getLarq() == null) {
            queryWrapper.isNull(ZxhjQsdhRglrEntity::getLarq);
        }else {
            queryWrapper.eq(ZxhjQsdhRglrEntity::getLarq, zxhjQsdhEntity.getLarq());
        }
        if (zxhjQsdhEntity.getYzfsrq() == null) {
            queryWrapper.isNull(ZxhjQsdhRglrEntity::getYzfsrq);
        }else {
            queryWrapper.eq(ZxhjQsdhRglrEntity::getYzfsrq, zxhjQsdhEntity.getYzfsrq());
        }
       
        if (zxhjQsdhEntity.getAjszjgDm() == null) {
            queryWrapper.isNull(ZxhjQsdhRglrEntity::getAjszjgDm);
        }else {
            queryWrapper.eq(ZxhjQsdhRglrEntity::getAjszjgDm, zxhjQsdhEntity.getAjszjgDm());
        }
        ZxhjQsdhRglrEntity ZxhjQsdhRglrEntity1 = zxhjQsdhRglrMapper.selectOne(queryWrapper);
        if (ZxhjQsdhRglrEntity1 == null) {
            ZxhjQsdhRglrEntity ZxhjQsdhRglrEntity = new ZxhjQsdhRglrEntity();
            BeanUtils.copyProperties(zxhjQsdhEntity, ZxhjQsdhRglrEntity);
            int insert = zxhjQsdhRglrMapper.insert(ZxhjQsdhRglrEntity);
            if (insert == 1) {
                return true;
            } else {
                return false;
            }
        } else {
            LambdaUpdateWrapper<ZxhjQsdhRglrEntity> updateWrapper = Wrappers.lambdaUpdate();
            if (zxhjQsdhEntity.getJcajxxuuid() == null) {
                updateWrapper.isNull(ZxhjQsdhRglrEntity::getJcajxxuuid);
            }else {
                updateWrapper.eq(ZxhjQsdhRglrEntity::getJcajxxuuid, zxhjQsdhEntity.getJcajxxuuid());
            }
            if (zxhjQsdhEntity.getNsrsbh() == null) {
                updateWrapper.isNull(ZxhjQsdhRglrEntity::getNsrsbh);
            }else {
                updateWrapper.eq(ZxhjQsdhRglrEntity::getNsrsbh, zxhjQsdhEntity.getNsrsbh());
            }
            if (zxhjQsdhEntity.getNsrmc() == null) {
                updateWrapper.isNull(ZxhjQsdhRglrEntity::getNsrmc);
            }else {
                updateWrapper.eq(ZxhjQsdhRglrEntity::getNsrmc, zxhjQsdhEntity.getNsrmc());
            }
            if (zxhjQsdhEntity.getJcajbh() == null) {
                updateWrapper.isNull(ZxhjQsdhRglrEntity::getJcajbh);
            }else {
                updateWrapper.eq(ZxhjQsdhRglrEntity::getJcajbh, zxhjQsdhEntity.getJcajbh());
            }
            if (zxhjQsdhEntity.getNsrzt() == null) {
                updateWrapper.isNull(ZxhjQsdhRglrEntity::getNsrzt);
            }else {
                updateWrapper.eq(ZxhjQsdhRglrEntity::getNsrzt, zxhjQsdhEntity.getNsrzt());
            }
            if (zxhjQsdhEntity.getJcajzt() == null) {
                updateWrapper.isNull(ZxhjQsdhRglrEntity::getJcajzt);
            }else {
                updateWrapper.eq(ZxhjQsdhRglrEntity::getJcajzt, zxhjQsdhEntity.getJcajzt());
            }
            if (zxhjQsdhEntity.getZxry() == null) {
                updateWrapper.isNull(ZxhjQsdhRglrEntity::getZxry);
            }else {
                updateWrapper.eq(ZxhjQsdhRglrEntity::getZxry, zxhjQsdhEntity.getZxry());
            }
            if (zxhjQsdhEntity.getZxdjrq() == null) {
                updateWrapper.isNull(ZxhjQsdhRglrEntity::getZxdjrq);
            }else {
                updateWrapper.eq(ZxhjQsdhRglrEntity::getZxdjrq, zxhjQsdhEntity.getZxdjrq());
            }
            if (zxhjQsdhEntity.getLarq() == null) {
                updateWrapper.isNull(ZxhjQsdhRglrEntity::getLarq);
            }else {
                updateWrapper.eq(ZxhjQsdhRglrEntity::getLarq, zxhjQsdhEntity.getLarq());
            }
            if (zxhjQsdhEntity.getYzfsrq() == null) {
                updateWrapper.isNull(ZxhjQsdhRglrEntity::getYzfsrq);
            }else {
                updateWrapper.eq(ZxhjQsdhRglrEntity::getYzfsrq, zxhjQsdhEntity.getYzfsrq());
            }
            if (zxhjQsdhEntity.getAjszjgDm() == null) {
                updateWrapper.isNull(ZxhjQsdhRglrEntity::getAjszjgDm);
            }else {
                updateWrapper.eq(ZxhjQsdhRglrEntity::getAjszjgDm, zxhjQsdhEntity.getAjszjgDm());
            }
            ZxhjQsdhRglrEntity ZxhjQsdhRglrEntity = new ZxhjQsdhRglrEntity();
            BeanUtils.copyProperties(zxhjQsdhEntity, ZxhjQsdhRglrEntity);
            int update = zxhjQsdhRglrMapper.update(ZxhjQsdhRglrEntity, updateWrapper);
            if (update == 1) {
                return true;
            } else {
                return false;
            }
        }
    }
}